System and method for personalized exercise training and coaching

ABSTRACT

A system and method that includes collecting kinematic data at an activity monitoring system coupled to a user; selecting a training activity of the user, the training activity selected from a plurality of training activity options; and processing the kinematic data in a processing mode of the selected training activity and thereby generating a set of training metrics that comprises at least one training metric.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application claims the benefit of U.S. Provisional Application No. 62/423,100, filed on 16 Nov. 2016, and U.S. Provisional Application No. 62/522,015, filed on 19 Jun. 2017 both of which are incorporated in their entireties by this reference.

TECHNICAL FIELD

This invention relates generally to the field of activity tracking, and more specifically to a new and useful system and method for personalized exercise training and coaching.

BACKGROUND

Athletes that exercise and work out to stay physically fit can work with a personal trainer who prescribes a customized set of exercises based on their goals, teaches the exercise and then monitors their form while doing the exercise. However, working with a personal trainer can be quite expensive and, because of the one-on-one relationship, personal training is difficult to scale because a personal trainer can only watch so many individuals simultaneously.

On the other hand, smartphone and internet-based applications have been developed to provide more education around exercises and training plans that can reach millions of people with a single app. While these applications can provide education, coaching and track progress, users need to manually enter in the exercises they have done and the number of repetitions of the exercises. For example, if the user did 10 squats, he would enter in 10 squats manually. This requires a lot of additional user input. These applications also do not provide the coaching and feedback on form and progress that can be obtained via a personal trainer. Thus, there is a need in the activity tracking field to create a new and useful system and method for personalized exercise training and coaching. This invention provides such a new and useful system and method.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a schematic representation of a system of a preferred embodiment;

FIG. 2 is a flowchart representation of a method of a preferred embodiment;

FIG. 3 is a schematic representation of an exemplary bicep curl and the corresponding motion paths;

FIG. 4 is a diagram representation of training metric analysis applied to different ways of performing a bicep curl;

FIG. 5 is a flowchart representation of a variation for using biometric sensing;

FIG. 6 is a schematic representation of an application used in monitoring a training activity;

FIG. 7 is a schematic representation of processing kinematic data in a pushup processing mode;

FIG. 8 is an exemplary model chart classifying standard and knee pushups;

FIG. 9 is a schematic representation of motion paths during standard and knee pushups;

FIG. 10 is an exemplary model chart classifying pelvic sag in pushups;

FIG. 11 is an exemplary model chart classifying pelvic rise in pushups;

FIG. 12 is a schematic representation of processing kinematic data in a lunge processing mode;

FIGS. 13 and 14 are exemplary model charts classifying lunge form quality;

FIG. 15 is a schematic representation of processing kinematic data in a squat processing mode;

FIG. 16 is an exemplary model chart classifying squat quality;

FIG. 17 is an exemplary model chart classifying squat knee properties;

FIG. 18 is a schematic representation of motion paths during good squats and squats where knees are bent over toes; and

FIG. 19 is a schematic representation of a good plank and bad plank.

DESCRIPTION OF THE EMBODIMENTS

The following description of the embodiments of the invention is not intended to limit the invention to these embodiments but rather to enable a person skilled in the art to make and use this invention.

1. Overview

A system and method for personalized exercise training and coaching of a preferred embodiment functions to use biomechanical and/or biometric sensing to track various exercise training activities. Compared to a personal trainer, the system and method can provide a scalable fitness training and coaching system that can be more widely accessed by users yet retaining the detailed feedback that may be provided by a personal trainer. Furthermore, through using sensing technology, the system and method can provide higher quality and consistent analysis of exercise training activities.

The system and method preferably include hardware, software processing modules, user applications, and/or other services that provide an exercise training platform that may provide education, measuring, tracking, and coaching. The system and method may be used for a user to gain a personal view into their training progress, but may additionally or alternatively be used to communicate the metrics with coaches, friends, or training teams.

In particular, the system and method leverage the use of at least one wearable activity monitoring system that tracks at least one form of kinematic data. That kinematic data can be selectively processed across a set of different exercise activities and used in tracking one or more training metrics.

Activity detection and tracking of the system and method can be done with a user performing various exercises alone with a standalone activity monitoring system or with a companion software application that can sit on a smart phone, smart watch, or other separate computing device. The companion application can educate a user about the exercises, create a personalized training plan for the user and work with the wearable device to increase the biomechanical analysis accuracy.

In one preferred implementation, the companion application (or more generally the system and method) can coach a user in real-time to perform specific exercises and the parameters of performing the exercise (e.g., number of repetitions/sets or duration). The application will send a notification to the wearable device to detect and analyze the specific exercise. The wearable device will then count the number of repetitions (i.e., the number of instances of an exercise is performed), measure the quality of the repetition and let the application know when the user is done with the specific exercise so that the application can move on to the next one automatically without user input.

In some implementations, the system and method may provide detection of the biomechanical qualities of the exercise as performed by the user. The biomechanical quality of an exercise can be characterized by the smoothness of the displacement path or the wobbliness of the path, the velocity, velocity consistency and length of the path, orientation angle of device (depending on where it is mounted to the user), frequency or intensity as the device shakes while performing the activity.

The biomechanical quality of the motion can be quantified algorithmically using a logic-and-heuristics approach with error correction that calculates the vertical, forward and lateral displacements and velocities in physical space from the accelerations and angular velocities. The biomechanical quality of the motion may additionally or alternatively be quantified using a machine learning or algorithmic approach. For example, good and bad form could be classifications trained in a machine learning model and used for classifying quality of performing a training activity. The angle of the device is oriented with gravity, calibrated to the body, and then calculated throughout the entire movement from beginning to end as an additional or alternative metric for exercise quality.

The system and method preferably use an activity monitoring system which can be a standalone device or may be integrated into another product such as a smart phone, smart watch, smart glasses and the like. The system and method can analyze exercises such as squats, pushups, lunges, weight lifting (e.g., curls, etc.), deadlifting, jumping jacks, boxing, sit ups, planks (e.g., side and/or straight planks), pull ups, pilates, yoga, and/or other suitable types of exercises.

As one potential benefit, the system and method may enable real-time coaching and/or feedback based on sensor-detected exercise activity. The user may be alleviated from counting progress during an exercise; recording and tracking history of exercise performance; and/or determining the right rate of progress or sets of exercises to perform.

As a related benefit, the system and method may provide qualitative analysis based on detection of biomechanical performance of the exercise activities. In one variation, exercise form can be detected. For example, improper lifting form may be detected and an alert signaled to prevent possible injury. In another variation, the qualitative change in exercise performance during an exercise session can be used to detect possible states of fatigue, injury, or other causes for performance changes.

As a related benefit, the system and method may be used to assess the qualitative progress in exercise performance. This can be used in measuring recovery progress such as after an injury.

The system and method may have additional or alternative benefits such as using the training metrics to predict calorie burn, to enable remote monitoring of training progress by a coach, and/or to enable other features.

In an exemplary usage scenario, the system may walk a user through performing 10 squats in a workout. The system is notified to count and analyze the squats. During each squat, the system analyzes squat motion path displacement in the vertical, forward, and lateral planes, the smoothness and shakiness of the squatting motion path, the velocity and consistency of velocity throughout the motion path, and the angle and stability of the pelvis. The pelvic angle can be measured to detect if the user is overly bent during a squat. The system can automatically count and compare the consistency of a set of squats to each other, to previous training workouts, or to other users. If the user is doing the squat incorrectly, the sensor can provide haptic or audio feedback, or the software application can provide real-time guidance to the user on how to correct the specific issue. Once the user hits their 10 squat goal, the application will automatically congratulate the user and move on to the next exercise. The system and method could additionally use the training metrics to generate a training plan that may be updated based on performance, triggering alerts based on fatigue/injury detection, performance comparison to other users, and/or other applications of the training metrics.

2. System

As shown in FIG. 1, a system for personalized exercise training and coaching of a preferred embodiment can include an activity monitoring system 110, biomechanical processing modules for a set of exercise training activities 120, and at least one feedback interface 130. In one implementation, the system can include an application 140 communicatively coupled to that of the activity monitoring system 110. The activity monitoring system 110 and the application 140 can operate cooperatively in configured processing of collected kinematic data and generation of resulting interactions. The system may additionally include other biometric sensors 150 such as an electromyography (EMG), a temperature sensor, a heart rate sensor, and/or any suitable biometric sensor.

The system preferably includes at least one device component including the activity monitoring system 110 that is physically coupled to the body of the user. Depending on the specific workout activity, the device can be worn on the waist, upper body, shoes, thigh, arms, wrists or head. The device can be clipped onto the waist of a pair of shorts, embedded into a pocket in a garment, sport band, arm and wrist bands, or an adhesive patch. The device can also be embedded into any other form factor that lets the device sit securely on a user.

An activity monitoring system 110 of a preferred embodiment functions to collect kinematic data that is then transformed to one or more training activity signals such as biomechanical signals. The biomechanical signals sometimes in combination with other inputs can be used to trigger or direct interactions of the system. The activity monitoring system 110 can include an inertial measurement unit 112, a processor 114, and optionally a communication module 116. The activity monitoring system 110 can additionally include any suitable components to support computational operation such as a processor, data storage, RAM, an EEPROM, user input elements (e.g., buttons, switches, capacitive sensors, touch screens, and the like), user output elements (e.g., status indicator lights, graphical display, speaker, audio jack, vibrational motor, and the like), communication components (e.g., Bluetooth LE, Zigbee, NFC, Wi-Fi, cellular data, and the like), and/or other suitable components.

The activity monitoring system 110 may serve as a standalone device where operation is fully contained in one device. The activity monitoring system 110 may additionally or alternatively communicate with at least one secondary system such as an application operating on a computing device; a remote activity data platform (e.g., a cloud-hosted platform); a secondary device (e.g., a mobile phone, a smart watch, computer, TV, augmented/virtual reality system, etc.); or any suitable external system.

In one variation, the system uses a multi-point sensing approach, wherein a set of inertial measurement units 112 measure motion at multiple points. The inertial measurement units 112 can be integrated into distinct devices wherein the system includes multiple communicatively coupled devices that can be mounted to different body locations. The points of measurement may be in the waist region, the upper leg, the lower leg, the foot, and/or any suitable location. Other points of measurement can include the upper body, the head, or portions of the arms. Various configurations of multi-point sensing can be used for sensing biomechanical signals. Different configurations may offer increased resolution, more robust sensing of one or more signals, and for detection of additional or alternative biomechanical signals. A foot activity monitor variation could be attached to or embedded in a shoe. A shank or thigh activity monitor could be strapped to the leg, embedded in an article of clothing, or positioned with any suitable approach. In a preferred implementation, the system includes a pelvic monitoring device that serves as a base sensor as many aspects of exercise activities can be interpreted from pelvic activity. A second monitoring device may be positioned on an arm or leg. The second monitoring device may additionally be expected to be movable such that it can be moved to different parts of the body depending on the activity.

Multiple points of sensing can be used to obtain motion data that provides unique motion information that may be less prevalent or undetectable from just a single sensing point. Multiple points can be used in distinguishing alternative biomechanical aspects and/or to detect particular biomechanical attributes with more resolution or consistency. Multiple points may be used for detecting foot gait attributes, knee flex angle, and/or distinguishing between right and left leg or arm actions. Single point sensing may additionally be applied to right and left leg or arm attributes, upper core body or arms. The multiple points can be used to obtain clearer signals for particular actions such as when a user bends to pick up a heavy object or rotates his body left or right. Multiple points can additionally be used in providing relative kinematics between different points of the body. The relative angular orientation and displacement can be detected between the foot, thigh, pelvic, thoracic and neck region. Similarly, relative velocities between a set of activity monitor systems can be used to generate particular biomechanical signals.

The inertial measurement unit 112 functions to measure multiple kinematic properties of an activity. An inertial measurement unit 112 can include at least one accelerometer, gyroscope, magnetometer, and/or other suitable inertial sensor. The inertial measurement unit 112 preferably includes a set of sensors aligned for detection of kinematic properties along three perpendicular axes. In one preferred variation, the inertial measurement unit 112 is a 9-axis motion-tracking device that includes a 3-axis gyroscope, a 3-axis accelerometer, and a 3-axis magnetometer. The sensor device can additionally include an integrated processor that provides sensor fusion. Sensor fusion can combine kinematic data from the various sensors to reduce uncertainty. In this application, it may be used to estimate orientation with respect to gravity and may be used in separating forces or sensed dynamics for data from a sensor. The on-device sensor fusion may provide other suitable sensor conveniences. Alternatively, multiple distinct sensors can be combined to provide a set of kinematic measurements.

An inertial measurement unit 112 and/or the activity monitoring system 110 can additionally include other sensors such as an altimeter, GPS, or any suitable sensor. Additionally, the system can include a communication channel via the communication module 116 to one or more computing devices with one or more sensors. For example, an inertial measurement unit can include a Bluetooth communication channel to a smart phone, and the smart phone can track and retrieve data on geolocation, distance covered, elevation changes, land speed, topographical incline at current location, and/or other data.

The processor 114 functions to transform sensor data generated by the inertial measurement unit 112. The processor 114 can include a calibration module and a set of processing modules used in interpreting training activities from the kinematic data. The processing can take place on the activity monitoring system 110 or be wirelessly transmitted to a smartphone, computer, web server, and/or other computing system that processes the biomechanical signals.

The processor 114 used in applying signal processing on the kinematic data can be integrated with the activity monitoring system 110. The processor 114 may alternatively be application logic operable on a secondary device such as a smart phone. In this variation, the processor 114 can be integrated with the user application. In yet another variation, the processor 114 can be a remote processor accessible over the network. Remote processing may enable large datasets to be more readily leveraged when analyzing kinematic data.

The communication module 116 functions to relay data between the activity monitoring system no and at least one other system. The communication module 116 may use Bluetooth, Wi-Fi, cellular data, and/or any suitable medium of communication. For example, the communication module 116 can be a Bluetooth chip with RF antenna built into the device. As discussed, the system may be a standalone device where there is no communication module 116.

The system can additionally include one or more feedback elements, which function to provide a medium for delivering real-time feedback to the user. A feedback element can include a haptic feedback element (e.g., a vibrational motor), audio speakers, a display, or other mechanisms for delivering feedback. Other user interface elements for input and/or output can additionally be incorporated into the device such as audio output elements, buttons, touch sensors, and the like.

In some variations, the system may include one or more biometric sensor 150. Preferably, the biometric sensor includes an electromyography (EMG) sensor. Detection of electrical activity of the muscles can be used in interpreting muscle activity. Muscle activity combined with biometric modeling can be used to understand the effectiveness of an exercise and if the correct muscles are being activated properly.

The biomechanical processing modules 120 of the system function to characterize user motion and activity metrics for a set of different exercise training activities. The system is preferably usable across a set of distinct exercises, but the system may alternatively include biomechanical processing modules for a single type of exercise. The exercises can include squats, pushups, lunges, weight lifting (e.g., curls, etc.), deadlifting, jumping jacks, boxing, sit ups, planks (e.g., side and/or straight planks), pull ups, pilates, yoga, and/or other suitable types of exercises. The different processing modules 120 are preferably used during different processing modes of the system.

A biomechanical processing module is preferably configured to process and transform sensed kinematic data into metrics reflecting the performance of the exercise. Types of training activities can include count, cadence/interval, cadence consistency, displacements (e.g., linear and/or angular), displacement consistency, biomechanical orientations such as core stability, motion path, performance classification (e.g., detecting smoothness, jerkiness, tremors, etc.), and/or other types of metrics. Different training activities may have different sets of training metrics. A biomechanical processing module may additionally include a training activity classifier, which may be used in automatic or semi-automatic selection of a training activity. In some variations, different training activities may benefit from different sensor positioning. The device of the activity monitoring system 110 may be repositioned during different training activities. Alternatively, a multi-sensor variation may activate or use different sensors in different locations.

Count training metric characterizes a count of iterations of the training activity. The count preferably counts repetitions. A count metric may additionally segment repetitions as sets so that a count of sets and reps can be collected. A set count here characterizes a count of the number of groupings of repetitions of a training activity. For example, a count metric could count 3 sets of 20, 15, and 10 repetitions. For training activities that don't have the concept of a repetition, such as a plank, a count metric may alternatively be used to measure the duration of the training activity.

A cadence or interval metric characterizes the time between repetitions. Frequency may alternatively be used as another way of representing cadence metrics. Cadence metrics may function to give insight into the difficulty level and/or the level of fatigue of the user.

Cadence consistency characterizes the amount of consistency in the cadence. Cadence changes can be a sign of fatigue. For example, as a user gets tired, cadence may increase (often with a decrease in form quality) to finish a set quicker or slow down to hold a resting position longer.

Displacements (e.g., linear and/or angular) can characterize different translations that happen during a training activity. The type of displacement metric depends on the training activity. Linear translations like vertical distance between the maximum and minimum height can be measured for pushups, squats, lunges, and other training activities. Angular rotations may additionally or alternatively be measured for different training activities such as bicep curls. Displacements can be used in classifying different aspects of a training activity as form as discussed herein.

Displacement consistency characterizes the amount of consistency for repeated displacements. Well-performed repetitions of a training activity ideally have high level of displacement consistency.

Biomechanical orientations can characterize any suitable form of orientation, position, or posture measurements during the training activity or during portions of a training activity. Core stability may be derived from biomechanical orientation measurements that function to characterize the movement of the core in three planes. Core stability may also include the consistency of the orientation metrics over time. For example, if a user is stable while performing the activity, the core stability orientation may not vary, but if the user was fatigued and muscles were shaking, the orientation measurements may vary widely. Core stability may function to indirectly measure the degree to which the core is engaged during an exercise.

Motion path metrics may characterize the overall movement pattern of one or more points of the body during a training activity. These paths can be two dimensional or three dimensional. Inconsistency of a motion path may be a sign of fatigue. Additionally particular training activities may have particular motion path properties that can be monitored for good or bad performance patterns.

Performance classification (e.g., detecting smoothness, jerkiness, tremors, etc.) metrics may be classifiers or labels that can be detected for different properties of performing the training activity. Shakiness and tremors could be detected during performance. Shakiness and tremors may be achieved through signal processing on the motion during an instance of a training activity.

A training activity classifier is preferably an activity processing module used in detecting and classifying kinematic data according to the predicted training activity. This classifier can be used for detecting what activities are being performed. Upon selecting a current training activity, specific training activity processing modules can be selected and used in processing the kinematic data.

A feedback interface 130 functions to provide some form of feedback to the user. The feedback interface 130 may be integrated with the activity monitoring system 110, the application 140, and/or any suitable device. The feedback interface is preferably activated in response to at least one training metric. A feedback interface 130 preferably enables activation of one or more feedback outlets such as a display, an audio system, haptic feedback, and the like. In one variation, the system can enable optional use of an application 140. In one example, the user can also use the wearable device without the companion app. During this use case, the wearable device will track the activities done, count the reps and calories burned, and store the data for upload in the future. If fatigue is detected, the device may alert the user via haptic, visual or audio feedback.

The application 140 functions as one potential outlet of the biomechanical signal output. The application 140 is preferably used in combination with the activity monitoring system 110 to facilitate interactions with the user and/or coordinate processing and synchronization of data. The user application 140 can be any suitable type of user interface component. An application 140 is preferably user accessible on a personal computing device as a native application or as an internet application. Preferably, the user application 140 is a graphical user interface operable on a user computing device. The user computing device can be a smart phone, a desktop computer, a TV-based computing device, a wearable computing device (e.g., a watch, glasses, etc.), or any suitable computing device. The user application 150 can alternatively be a website accessed through a client browsing device.

The application 140 may allow the user to sync data from the device, configure the device and settings, and view the data from the device. The application 140 may also process the raw signals from the device and communicate with a remote data platform that can sync data, send firmware updates, or additional context such as social comparisons with other users to create a more compelling user experience.

In addition, the application 140 can connect to a cloud database of a data platform where user data can be uploaded. The uploaded data can then be analyzed to measure progress, share with coaches and teammates or compare with other similar users currently training. In one variation, the cloud database can have an interface that allows coaches, personal trainers and others access to the user training data. Personal coaches can use this data to provide individual feedback to the user and help personalize training plans, direct the coach to focus on a particular weakness, or notify the coach if a user may be fatigued or at risk of injury. In another variation, an automated coaching program can leverage the data to create specific training plan. Performance clustering algorithms can help provide more a specific training programs based on progress and demographic information. In addition, relative comparisons of data between similar demographics or training levels can be used to create benchmarks.

The new data generated from the wearable device and system can help identify issues at the individual, team or entire population level and help all users train better and more effectively while limiting injury risk.

3. Method

As shown in FIG. 2, a system for personalized exercise training and coaching of a preferred embodiment can include collecting kinematic data at an activity monitoring system coupled to a user S110, selecting a training activity of the user S120; processing the kinematic data in a processing mode of the selected training activity and thereby generating a set of training metrics that comprises at least one metric S130. The method can additionally include applying the generated set of training metrics S140 for generating real-time feedback on user performance of a training activity, generating a personalized training plan, or other suitable applications. Some alternative embodiments of the method may be applied to the collection of training metrics for a single type of training activity.

Block S110, which includes collecting kinematic data at an activity monitoring system coupled to a user, functions to sense, detect, or otherwise obtain sensor data relating to motion of a user. The kinematic data can be collected with an inertial measurement system that may include an accelerometer system, a gyroscope system, and/or a magnetometer. Preferably, the inertial measurement system includes a three-axis accelerometer and gyroscope. The kinematic data is preferably a stream of kinematic data collected over periods of time when a training activity is performed. The kinematic data may be collected continuously but may alternatively be selectively activated prior to a task.

Monitoring the kinematic and biomechanical properties of a training activity may involve different approaches of collecting kinematic data depending on the training activity. Some biomechanical measurements of a training activity may be tracked and detected by monitoring at least one metric of an inertial measurement system over time. Other biomechanical measurements of a training activity may be generated through processing of two or more metrics of a single inertial measurement system. In other variations, a biomechanical measurement of a training activity may be generated through processing metrics from two or more activity monitoring systems on an athlete (e.g., one on the pelvis and one on the knee).

In one variation, the training activity can be continuously tracked over an exercise session including multiple training activities. In another variation, kinematic data may be collected during discrete training activities. Accordingly, the method may include triggering collection of kinematic data.

In one variation, data of the kinematic data is raw, unprocessed sensor data as detected from a sensor device. Raw sensor data can be collected directly from the sensing device, but the raw sensor data may alternatively be collected from an intermediary data source. In another variation, the data can be pre-processed. For example, data can be filtered, error corrected, or otherwise transformed. In one variation, in-hardware sensor fusion is performed by an on-device processor of the inertial measurement unit. The kinematic data is preferably calibrated to some reference orientation. In one variation, automatic calibration may be used as described in U.S. patent application Ser. No. 15/454,514 filed on 9 Mar. 2017, which is hereby incorporated in its entirety by this reference.

Any suitable pre-processing may additionally be applied to the data during the method. In one variation, collecting kinematic data can include calibrating orientation and normalizing the kinematic data.

An individual kinematic data stream preferably corresponds to distinct kinematic measurements along a defined axis. The kinematic measurements are preferably along a set of orthonormal axes (e.g., an x, y, z coordinate plane). As described below, the axis of measurements may not be physically restrained to be aligned with a preferred or assumed coordinate system of the activity. Accordingly, the axis of measurement by one or more sensor(s) may be calibrated. One, two, or all three axes may share some or all features of the calibration, or be calibrated independently. The kinematic measurements can include acceleration, velocity, displacement, force, rotational acceleration, rotational displacement, tilt/angle, and/or any suitable metric corresponding to a kinematic property of an activity. Preferably, a sensing device provides acceleration as detected by an accelerometer and angular velocity as detected by a gyroscope along three orthonormal axes. Velocity and displacement metrics can be generated from these measured kinematic data streams in block S130. The set of kinematic data streams preferably includes acceleration in any orthonormal set of axes in three-dimensional space, herein denoted as x, y, z axes, and angular velocity about the x, y, and z axes. Additionally, the sensing device may detect magnetic field through a three-axis magnetometer.

Calibrating the kinematic data can involve standardizing the kinematic data and calibrating the kinematic data to a reference orientation such as a coordinate system of the participant. The nature of calibration can be customized depending on the task and/or kinematic activity. For example, in some training activities, normalizing the set of kinematic data streams may include adapting the orientation of kinematic data sensing to one or more positions of the training activity. Alternatively, calibration may be made relative to the user. In one variation, calibration can be triggered when the user is walking in between training activities. This may include detecting walking patterns in the kinematic data and triggering calibration. The inertial measurement unit is preferably part of a device that can be attached or otherwise fixed into a certain position during an activity. That position can be static during the activity but may also be perturbed and change. Preferably, the inertial measurement unit is positioned in the waist/pelvic region and more specifically in the lumbar or sacral region of the back. Additional inertial measurement units can be positioned at varying points to provide kinematic data streams for other portions of the body. Sensor fusion can additionally be applied across a set of kinematic data streams to account for motion and other contributing factors and to approximate real-world motion measurements.

Block S120, which includes selecting a training activity of the user, functions to determine the processing mode used in translating the kinematic data to training metrics. The training activity is preferably selected from a plurality of training activity options such as squats, pushups, lunges, weight lifting (e.g., curls, etc.), deadlifting, jumping jacks, boxing, sit ups, planks (e.g., side and/or straight planks), pull ups, pilates, yoga, and/or other suitable types of exercises.

The method is preferably implemented in connection with an application such as one with a user interface accessible on a smart phone or smart watch. The selection of the training activity is preferably represented within the user interface of the application.

In one variation, the selection of a training activity can be manually made. For example, a user may select a training activity to track as shown in the exemplary application interface flow in FIG. 6. An application on a smart phone or other suitable computable device may be used to make a selection of a current training activity. Similarly, the training activity may be directed, where the application directs the user to perform a particular training activity. In variations where a personalized training program is generated for the user, a sequence of training activities may be generated and the user follows the prescribed sequence.

In another variation, the selection of a training activity may be automatically performed. In this variation, selecting a training activity can include processing the kinematic data in a classification mode and thereby identifying a current training activity. The current training activity is automatically selected and the kinematic data can be processed using a processing mode of the current training activity. Additionally, prior kinematic data may be retroactively processed with the processing mode of the current training activity to extract the training metrics. For example, a user may start performing pushups. The training activity of pushups may be detected after a one to three pushups, which thereby initiates a pushup processing mode. The kinematic data that was collected and used in classifying the activity can additionally be processed such that the pushups performed before the activity was detected can be included in the training metrics.

In some alternative embodiments, the method may be preconfigured for the monitoring and collection of training metrics for one type of training activity such that there is no selection of a training activity.

Blocks S120 and S130 are preferably performed iteratively during an exercise session such that the method captures and collects training metrics for the performed training activities. It can additionally function across multiple sets and alternating sets of different exercises. In an automatic selection variation, a user may be enabled to do multiple sets of pushups, squats, and lunges, and the method can generate metrics automatically for each set and for each side of the squats and lunges.

Block S130, which includes processing the kinematic data in a processing mode of the selected training activity and thereby generating a set of training metrics that comprises at least one metric, functions to interpret motion of the user as signals relating to measuring an exercise training activity.

Processing a biomechanical processing module preferably analyzes and transforms sensed kinematic data into one or more metrics reflecting the performance of the exercise. The type and number of resulting training metrics can vary depending on the training activity, and the training metrics are preferably recorded and tracked in association with the appropriate training activity. For example, after finishing a training session where a user performs multiple sets of different training activities, the user can be presented with a data report on their training session.

Types of training activities can include count, cadence/interval, cadence consistency, displacements (e.g., linear and/or angular), displacement consistency, biomechanical orientations such as core stability, motion path, performance classification (e.g., detecting smoothness, jerkiness, tremors, etc.), and/or other types of metrics. These various training metrics can be used in measuring progress (e.g., count), form, and/or classifying performance (e.g., detecting fatigue, injury, proper form, etc.).

In the variation of training activity stats relating to progress, processing the kinematic data in a processing mode may include classifying at least one training metric by measuring performance of the training activity. The progress-related training metrics may include repetition count, set count, cadence, displacements, and/or other training metrics. These can preferably be used in tracking progress, which may be presented in various forms of reports or dashboards. Progress related training metrics may additionally be used in generating user guidance/coaching and/or other forms of user feedback. The feedback can preferably be used in promoting better fitness. The feedback can be tailored to different goals such as strength, stamina, overall fitness, flexibility, injury recovery and the like.

In the variation of training activity metrics relating to form detection, processing the kinematic data in a processing mode may include classifying form or quality of performing the training activity. The classification is preferably an analysis of the kinematic data, based on one or more properties. The form-related training metrics may relate to quantifying training activity form and/or classification/detection. In some cases, the classification can be based on generated training metrics such as displacement or pelvic tilt. Various aspects of form can be detected such as detecting proper posture at different points of an exercise and/or detecting various motion patterns when performing a training activity.

In a similar variation of training activity metrics relating to fatigue detection, processing the kinematic data and generating a training metric may include detecting a fatigue state in kinematic data during performance of a training activity. A training metric that classifies fatigue state may be used in interpreting exertion by a user, which can be used for generating and/or guiding exercise routines.

As a user trains, their muscles may begin fatiguing over time. Too much fatigue without enough rest or with improper technique may lead to injury. The method can identify fatigue with a number of biomechanical indicators including the shaking or wobbliness throughout an exercise motion, the velocity and length of the motion, or angular velocity and angle range, as well as the inconsistency of the movement path between each discrete rep or set of reps. Fatigue can usually be detected over time as the inconsistency or stability of the motion path becomes worse and worse, enabling the sensor or application to notify the user to take a break or stop the workout. The consistency of the repetition cadence may begin to vary.

For example, fatigue can be detected from the motion path throughout a set of bicep curls as the user progresses through his sets. If the beginning of a set of bicep curls exercises had smooth and controlled motion paths and then began to wobble and shake progressively throughout the workout set, then fatigue may be detected and the application may ask the user to stop prematurely before injury occurs or to take a rest.

In another variation, the processing of kinematic data may be applied to asymmetrical training activities where a user exercises a right side and a left side independently. For asymmetrical exercises, the processing of kinematic data when in a processing mode of an asymmetric training activity can include detecting training activity of the specific side and generating training metric for that side, which functions to track metrics for each side individually. The processing of asymmetrical exercises can preferably handle extracting training metrics when the different sides are exercised in batches (e.g., doing one side and then the other), alternating, and/or any suitable sequencing of sides. The various metrics relating to performance form and fatigue could similarly be applied to each side. Comparisons of the two sides could additionally be used in forming metrics relating to side balance. Accordingly, the processing of the kinematic data may include generating a side comparison metric comparing at least one right training metric and left training metric. Such right-left analysis may be used for generating customized training recommendations for different sides. For example, the method can automatically focus on one particular side if that side is detected to be weaker or to fatigue quicker.

For repetition-based training activities, the processing of the kinematic data can generally include segmenting the training activities, possibly error correcting through application of identifying a consistent biomechanic state of the training activity, and generating displacement-based training metrics. Repetition-based activities can generate a quasi-periodic signal, and the consistent segmentation of these signals is critical in computing accurate exercise metrics. Segmenting generally involves the integration of acceleration data in the global reference frame and identifying a segmentation pattern. One challenge in working with kinematic data from accelerometer data may be that while the most appropriate biomechanic state may be best defined using velocities or displacements, computing these signals via basic integration may be error prone due to sensor drift. For example, errors in sensing can be accumulated over time as a form of sensor drift, and compounded through mathematical transformations such as integration, rendering the signal inaccurate if proper error correction is not made. As discovered by the applicants, some implementations can leverage the analysis of particular signals and parts of a kinematic data stream to identify the desired biomechanic state, referred to as the biomechanical base state herein. The biomechanical base state preferably defines the phase of the quasiperiodic actions such that it is reliably consistent across repetitions. Base state error correction can then be applied by leveraging two biomechanical base states to compute the accumulated sensor drift between base states. The accumulated integration error can preferably be removed or reduced. For example, an assumption can be made that velocity and displacement maps to zero when the user is in the biomechanical base state, and then any drift that occurs across a single quasiperiod of the signal can be accounted for as error and corrected by using methods such as linear interpolation. In other words, an integrated signal can be error corrected by adjusting the signal within one period so that the signal is adjusted to have a fixed biomechanical base state. Substantially, accurate velocity and displacement metrics can then be used for form analysis and/or other forms of classifications.

In a variation wherein the plurality of training activity options includes at least a set of pushups, processing the kinematic data in a pushup processing mode and generating a set of pushup training metrics can include the generating of training metrics such as pushup count, pushup cadence, cadence consistency, vertical displacement, tilt angle, core engagement classification, motion path, core stability, pushup style classifications, form classification and/or other suitable training metrics. The pushup processing mode preferably involves the segmenting of pushups. The individual pushups can then be processed and analyzed either individually (e.g., detecting displacement for each pushup) or as a group (e.g., detecting pushup patterns across a set of pushup iterations).

Count, cadence, and cadence consistency characterize pushup metrics as generally described above. Pushups are preferably segmented through detecting local extremas in various forms of kinematic data approximations derived from the kinematic data. In a preferred implementation, smoothed vertical acceleration can be used for segmentation. Pushup performance metrics may additionally include metrics relating to duty cycle or, more specifically, top-period and bottom-period measurements. A top-period measurement characterizes the amount of time the user spends at the top of a pushup, and a bottom-period measurement characterizes the amount of time the user spends at the bottom of a pushup. There could also be a motion-period measurement characterizing time of motion up and/or down, and such metrics may additionally be represented as ratios, percentages, or any suitable format.

In one preferred implementation, processing in a pushup processing mode preferably includes smoothing vertical acceleration data; segmenting the smoothed vertical acceleration data stream through pushup segmentation pattern analysis; assigning a pushup biomechanical base state to a pushup segment; and generating error corrected vertical displacement data for a pushup segment using error correction based on the biomechanical base states. The vertical acceleration data is preferably smoothed or filtered to remove signal noise that complicates detection of pushup segmentation pattern analysis. Smoothing in one implementation can use an exponentially weighted moving average filter to reduce lag. Other suitable filters could alternatively be used.

The pushup segmentation pattern preferably includes detecting a local minimum in the smoothed acceleration data stream (avr) as shown in FIG. 7. The smoothed acceleration data stream is based on a globally oriented accelerometer data stream from sensor fusion (avs). Pushups generally have a sinusoidal vertical displacement pattern during normal performance. Accordingly, the maximum displacement of a pushup will correspond to a minimum in acceleration. This segmentation position will correspond to the top position of a pushup, which can be used as a pushup biomechanical base state. Alternative pushup segmentation patterns could also be used. Vertical velocity (vvs) and displacement (dvs) can then be generated using error correction that corrects the generated velocity and/or displacement signals assuming each repetition has the same position at the pushup biomechanical base state. A pushup count metric may only be counted if the error corrected vertical displacement is above a particular threshold. The displacement is preferably normalized to account for the dimensions of the user.

Vertical displacement preferably characterizes the absolute displacement from the maximum height of the movement to the minimum height of the pushup motion. Similar to vertical displacement, velocity, acceleration and/or other kinematic properties derived from motion measurements can be used. Vertical displacement along with cranial/caudal or lateral displacement and velocity can preferably be calculated by applying the biomechanical base state error correction. Generating corrected biomechanical training metrics can include integrating the globally oriented vertical acceleration data stream, performing biomechanical base state error correction on the integrated accelerometer data (resulting in corrected vertical velocity data), integrating the corrected velocity data, and performing biomechanical base state error correction on the integrated velocity data (resulting in corrected vertical displacement).

Collection of user's height or arm length may be used to interpret displacement measurements at the point of the activity monitoring system to that of the actual body. For example, the method could include translating generated displacement measurements in the pelvic region to upper body displacement based on an arm length measurement. In another example, height or arm length information can be used to normalize a satisfactory displacement from a shallow displacement across different body types.

Consistency of vertical displacement or other kinematic properties can be used to quantify consistency of pushup performance. For example, each pushup should see substantially consistent vertical displacement. The velocity consistency can also reflect higher rate of control.

Tilt angle when the activity monitoring system is in a pelvic region can characterize the pelvic tilt. The angle of the pelvic hinge during a pushup may signal if the core is engaged throughout the entire pushup. Muscular contraction of the core, preferably keeps the body (pelvis, trunk) static during the exercise. Similarly, the stability and shaking during the pushup can be reflected through the pelvic tilt/orientation. For example, when the core is not engaged, the hips/pelvis dip and this causes a lot of stress on the athlete's lower back. When the core is engaged, the athlete is pivoting from their toes and only their arms are moving the body up and down.

Movement of the core in all three planes (coronal, sagittal, and transverse) can similarly be applied. This approach can serve as an indirect measure of the core to determine if it is engaged (and strong enough to hold the load of the body) or not. If the core is engaged, there should be zero movement in the pelvis area. Pelvic rotation, or angular change of the pelvis in the transverse plane, could be a result of compensating for asymmetries in arm and chest strength. Pelvic tilt, or angular change of the pelvis in the sagittal plane, in some instance may indicate a weak or non-engaged core. It could similarly be an indicator to poor form. Pelvic drop, or angular change in the coronal plane, is likely a compensation mechanism for weak arms or overall systemic fatigue.

Motion path metrics can be used for form analysis, consistency analysis, training activity classification, and/or as a general measurement.

Various forms of pushup classifying metrics can additionally be used. Form classifying preferably includes segmenting pushup repetitions from the kinematic data and extracting pushup training metrics of a pushup repetition. This can additionally include classifying form across pushup repetitions. Pushup classifiers may generally classify the quality of a pushup, which functions to evaluate or measure form quality. Another pushup classifier variation can detect the type of pushup, which can include detecting a pushup style from kinematic data during pushup repetitions. In one variation, analyzing pelvic tilt properties during pushup repetitions includes classifying from a set of pushup style variations such as knee pushups, standard pushups, inclined pushups, and the like. For example, a discriminator between knee pushups and standard pushups can discriminate between vertical displacement and horizontal displacement. A discriminator can be a heuristic based set of conditions or rules, a machine learning model, an algorithmic model, and/or any suitable approach for data classification.

More specific classifiers can act as discriminators for various aspects of a pushup. Generally, a classifier can be trained to classify the training metrics based on two or more properties of displacement, velocity, user properties (e.g., like height, arm length, etc.). Classifiers in one variation can be generated through a data analysis of implementations of the training activity with the various classifications. A discriminator may be generated using machine learning or other techniques

A pushup depth discriminator can classify pushup repetitions by vertical displacement and height to detect good form from a repetition that is not low enough.

The type of pushup can additionally be classified through various forms of training metric analysis. In one variation, knee pushups and standard pushups can be classified by comparing vertical to longitudinal displacements as shown in FIG. 8. As shown in FIG. 9, the detected motion path at the pelvis will exhibit such patterns where there is more longitudinal displacement relative to the amount of vertical displacement for knee pushups.

A pelvic sag discriminator can classify pushup repetitions by vertical displacement and height as shown in FIG. 10. Increased vertical displacement range can be an indicator of pelvic sag.

A pelvic rise discriminator can classify pushup repetitions by tilt angle range and vertical displacement as shown in FIG. 11. Pelvic raise during a pushup can cause a large shift in angle that results in an increased angle range.

In a variation wherein the plurality of training activity options includes at least lunges and/or squats, processing the kinematic data in a lunge processing mode and/or a squat processing mode and generating a set of pushup training metrics can include generating training metrics such as count, cadence, cadence consistency, vertical distance, vertical distance consistency, sagittal tilt, core stability, motion paths, horizontal distance, horizontal distance consistency and/or other suitable training metrics. The training metrics for squats and lunges are substantially similar approach to those described above from pushups but may include variations in the approach as detailed below. For example, squats and lunges may both include longitudinal and/or lateral displacement metrics.

A lunge processing mode can include classifying lunge foot, lunge foot count, classifying at least one aspect of lunge form, and/or generating any of the above metrics.

In one preferred implementation, processing in a lunge processing mode will generally initially involve segmenting lunges from which various motion properties can be extracted as with pushups, squats, and other training activities. Processing in a lunge processing mode preferably includes integrating vertical acceleration data and thereby generating a raw vertical velocity data stream; segmenting the raw vertical velocity data stream through lunge pattern analysis; assigning a consistent lunge biomechanical base state to a lunge segment; and generating error corrected vertical displacement data for a lunge segment through biomechanical base state error correction. Herein, the raw vertical velocity data stream is characterized as raw as it is not error corrected and primarily functions to serve as a signal that can be used to facilitate segmentation and biomechanical base state detection. The lunge segmentation pattern preferably includes detecting a local minimum after a local maximum. Biomechanical base state error correction can then be used by integrating the accelerometer data stream, performing biomechanical base state error correction on integrated accelerometer (resulting in corrected vertical velocity data), integrating the corrected velocity data, and performing biomechanical base state error correction on the integrated velocity data (resulting in corrected vertical displacement). As shown in FIG. 12, the raw vertical velocity signal (vvr) can be used in detecting the local minimum after a maximum to segment lunges. That point preferably corresponds to a user returning to their rest state by standing upright with the legs fully extended. This biomechanical base state can be used to generate a corrected vertical velocity signal (vvs) and displacement signal (dvs). If the vertical displacement surpasses some displacement threshold within an individual segment, the method preferably counts it as a lunge.

Lunges include forward motion in addition to vertical motion. In a related preferred implementation, the processing of a lunge processing mode may additionally or alternatively make use of anterior/posterior acceleration (i.e., acceleration forward or backwards in longitudinal direction). The anterior/posterior acceleration can similarly be analyzed to generate an error corrected longitudinal displacement. Processing in a lunge processing mode can additionally or alternatively include integrating anterior/posterior acceleration data and thereby generating a raw longitudinal velocity data stream; segmenting the raw vertical velocity data stream through lunge pattern analysis; assigning a biomechanical base state to a lunge segment; and generating error corrected anterior/posterior displacement data for a lunge segment through biomechanical base state error correction. Forward lunges and backward lunges can be distinguished by looking at the directionality of movement during the lunge segments. Side lunges can also be analyzed by looking at lateral acceleration to generate lateral displacement. Right and left side lunges can be individually counted by looking at the direction of displacement, as well as the change in pelvis orientation during the exercise.

Processing a lunge processing mode can include applying discriminators such as lunge depth to distinguish good form from lunges not sufficiently low. As shown in the exemplary lunge form quality discriminator model of FIG. 13, vertical displacement and height can be used to classify lunges. Lunges may additionally include a discriminator for lunge stride that discriminates between good form and excessively long or short lunge strides. Vertical and horizontal displacements can be used in this variation. In one alternative, discriminating via longitudinal displacement and vertical displacement can be used in combination to classify as good, too short, too long, too low, and failure (e.g., not counting as a lunge) as shown in the height normalized discriminator graphic for lunges of FIG. 14. Different types of lunges such as front lunges, side lunges, rear lunges, and the like may have different processing modes but may generally apply similar processes.

The lunge foot can additionally be determined by looking at biases towards different directions. In one preferred implementation, a classifier based on pelvic orientation during a lunge segment can be used in classifying an individual lunge as right or left footed.

A squat processing mode can include counting squats, classifying at least one aspect of squat form, and/or generating any of the above metrics. Generating the basic performance metrics can be substantially similar to processing of vertical acceleration for a lunge. Accordingly, in one preferred implementation, processing in a squat processing mode preferably includes integrating vertical acceleration data and thereby generating a raw vertical velocity data stream; segmenting the raw vertical velocity data stream through squat pattern analysis; assigning a biomechanical base state to a squat segment; and generating error corrected vertical displacement data for a squat segment through biomechanical base state error correction. The squat segmentation pattern analysis preferably includes detecting a local minimum after a local maximum. As shown in FIG. 15, the raw vertical velocity signal (vvr) can be used in detecting the local minimum after a maximum when segmenting squats. That point preferably corresponds to a user returning to rest at the top of a squat. This biomechanical base state can be used to generate a corrected vertical velocity signal (vvs) and displacement signal (dvs). If the vertical displacement surpasses some displacement threshold within an individual segment, the method preferably counts it as a squat.

Processing a squat processing mode can include applying discriminators for squat depth that functions similar to lunge depth but applying different classification of vertical displacement and height metrics. As shown in an exemplary form quality discriminator model of FIG. 16, user height and vertical displacement may be used to classify squats as having good form, bad form, or as a failure mode (e.g., not counting as a squat).

Squats may additionally include a discriminator for knee motion during a squat that leverages vertical displacement and horizontal displacement to classify good form vs. form where knees are over the toes, which leads to increased injury risk to the knee due to improper loading. As shown in an exemplary squat knee form quality discriminator model of FIG. 17, vertical displacement (e.g., normalized or as a percentage of user height) can be compared to anterior/posterior displacement. This discriminator detects a trend in low anterior/posterior displacements correlating to knees over toes. As shown in FIG. 18, such a discriminator can detect such occurrences when a user's knees are over their toes.

Squats can additionally include a discriminator based on pelvic tilt properties during segments of a repetition. Changes in pelvic tilt may be characteristics of improper form that can be detected through the method. Lateral displacement discriminators, tremor/shaking discriminators, and/or other suitable types of discriminators may additionally or alternatively be used.

In a variation where the plurality of training activity options includes planks, processing the kinematic data in a plank processing mode and generating a set of plank training metrics can include generating training metrics such as plank duration, pelvic tilt, core stability, plank style classification, and/or other training metrics. Plank duration can be achieved through detecting the plank training activity initiation and termination and measuring duration between the two events. Pelvic tilt metrics may differ for different types of planks. A straight plank can measure sagittal tilt. A side plank may measure pelvic coronal tilt. Core stability can classify movement of the core in one to three plans (e.g., coronal, sagittal, and transverse). Side planks may additionally include a side classifier such that right and left side versions of a side plank can be detected and individually measured. For example, the stable state orientation can be used in classifying a good plank (e.g., no pelvis bend) and a bad plank (e.g., bottom lifted in the air or sagging to the ground) as shown in FIG. 19. Shaking can be used to measure fatigue. Overtime, progress can be identified not just by the amount of time a user can hold a plank, but how well the user can hold a plank before the body begins fatiguing and losing good form.

In a variation where the plurality of training activity options includes weight lifting, processing the kinematic data can include processing the kinematic data in a weight lifting processing mode and generating a set of weight lifting training metrics. Weight lifting training metrics may be customized to the different types of weight lifting exercises but can include training metrics such as displacements, rotations, movement consistency, motion form classification, posture or orientation classification, and/or other suitable training metrics. Some weight lifting training activities may include measuring kinematic data in a different region from other exercises which may include activating at least a second activity monitoring system coupled to the user in a distinct location. For example, if the sensor is worn on the forearm, wrist, or even the weights themselves, the sensor and system can measure exercises such as bicep curls, boxing, and bench pressing.

During a bicep curl, the entire path of a bicep curl can be traced and analyzed. If the bicep curl is controlled a smooth displacement arc will be mapped. As shown in FIG. 3, kinematic data can be processed to characterize biomechanical motion during the first half of the bicep curl on the way up and the second half of the curl on the way down. As with squats, lunges, and pushups, curls or other weight lifting actions can be processed in a similar manner by segmenting and generating error corrected velocity and/or displacement metrics through integration.

Processing in a weight lifting processing mode preferably includes integrating vertical acceleration data and thereby generating a raw vertical velocity data stream; segmenting the raw vertical velocity data stream through weight lifting pattern analysis; assigning a consistent lifting biomechanical base state to a lifting segment; and generating error corrected vertical displacement data for a lifting segment through biomechanical base state error correction. Additionally or alternatively, horizontal data may be used. The lifting pattern analysis may include detecting the return to the start position of a lifting repetition (e.g., the bottom or the top of a lift depending on the lift type). This in some cases can be a local minimum within the raw vertical velocity data. This approach could be used for bicep curls, deadlifts, and/or other types of lifting actions. Different discriminators can additionally be defined for each of the different lifting activities. For example, a discriminator on vertical displacement could be used to differentiate between good and bad lifting actions like a curl or deadlift. A discriminator on horizontal displacement may be used to detect and classify particular aspects of bad form like swinging arms back and forth too much during a lift.

If there is weakness in the bicep curl, then some wobbly-ness that resembles over and undershooting in the forward and lateral planes, or shaky-ness can be analyzed during the motion path. As shown in FIG. 4, properties of a motion path of a bicep curl may be detected and interpreted as signals of different factors such as excessive weight, fatigue, injury, and the like. Inconsistency in curl velocity and/or patterns of wobbliness or shakiness may trigger feedback to a user. Feedback can be given to the user in real-time. For example, if a user has consistent wobbly motion paths from the beginning of the set, the application may recommend using lighter weights.

Similarly, exercises like deadlifting can also be analyzed to ensure proper form throughout the entire lift to avoid injury. The angle of the back can be measured throughout the vertical, forward and lateral displacement of the motion path. Any instability, such as shaking or weight imbalance can be detected.

In one variation, the method may include collecting an electromyography (EMG) signal from the user, predicting muscle usage during training activities, and generating a form classification training metric classifying on muscle usage and biomechanical-based training metrics as shown in FIG. 5. A machine learning model, a heuristics model, or any suitable model may be used. Muscle activation and usage patterns should have a signal pattern that maps to corresponding motions of the body that are reflected through one or more biomechanical-based training metrics such as displacement measurements, motion paths, and the like. EMG sensors can be used to verify that the correct muscles are firing at the right times for each specific exercise. Real-time coaching can then be provided to guide the user into exercising the correct muscle groups. For instance, if the biomechanics of the bicep curl are not correct, then a smart coaching program can analyze whether the correct muscles are firing at the right time. The smart coaching program can provide personalized feedback to guide the user's form into proper form and technique that optimizes for the proper muscle group firing (at the right time) for each specific exercise—enabling the user to train effectively and efficiently. The same EMG sensors can help to detect if a muscle group is nearing fatigue from overwork.

Combining EMG sensors with kinematic data from an IMU can function to provide a deeper understanding of biomechanical signal data. In particular, EMG sensors provide more context of why some movements occur the way they do. It lets the user know which muscles are most likely responsible for the incorrect behavior, and therefore empowers the user, personal trainer or coach to focus on a specific muscle group during a training exercise or to retrain a habit that was previously incorrect. This data can also be compared to a baseline. EMG sensors can be worn anywhere on the body and specifically on the muscles of the body that are important for the specific exercise being analyzed, or specific muscle group the user is weak in.

For example, if a user usually has difficulty engaging his core, EMG sensors can be placed on his core to ensure his core is engaged during the entire planking exercise. During squats, the EMG sensors can be placed on the quadriceps to ensure they fire at the right time, or can provide more information on any asymmetry between left and right quad. This system can also be used in gait retraining for users who have a physical injury and are re-learning how to walk again.

The method preferably includes applying the generated set of training metrics S140 preferably to alter the training of a user such as by: generating real-time feedback on a user's performance of a training activity, generating a personalized training plan, or other suitable applications.

Generating real-time feedback on a user's performance of a training activity can include presenting training metrics through some interface. The feedback is preferably driven at least in part on the generated training metrics which may relate to performance status (e.g., number of repetitions), performance quality (e.g., form classification), or other aspects. In one implementation, audio feedback can be generated to help a user keep track of the number of repetitions the user is on and to hear reminders when form starts to degrade. Generating feedback will preferably include monitoring a set of training metrics as compared to at least one training condition and generating feedback in response to the training conditions. For example, various training metric thresholds and/or patterns may be monitored as a training condition. In one example, the number of repetitions can be monitored and audio alerts can be used to count repetitions and/or announce when a target number repetitions is reached or is close. In another example, the various discriminators described above may be used to trigger feedback when particular form classifications are identified. For example, generating real-time feedback may include triggering feedback on performance quality such as indicating good form, bad form, recommending form adjustments, and the like.

Training conditions may be automatically set by the method. A user could additionally or alternatively customize training conditions. Training conditions may be used to detect positive conditions such as a long streak of good form or satisfying some threshold of repetitions, negatively associated conditions such as bad form, and/or neutral conditions.

Generating a personalized training plan can function on generating recommendations on training goals, such as weight loss, power, or hypertrophy (i.e., enlarging muscles) exercise programs. These different goals may alter the coaching when training. Weight loss mode may prioritize coaching performing a high number of repetitions at low intensity. Hypertrophy mode may target a moderate number of repetitions at moderate intensity. A power mode may target a lower number of repetitions but maximizing intensity. The generated training plan can be presented within an app or be used in setting training conditions. For example, the number of targeted repetitions for a particular training activity may be set based on previous progress and the quality of form. The next time the user can be guided to satisfy the updated exercise repetition count. The personalized coaching program can additionally monitor fatigue, detect possible injury states, and/or other aspects of training to moderate the exercise program.

The collection of training data can additionally be synchronized for group analysis, performance comparison/rating, generation of training plans, and/or other applications. In one variation, data synchronized with the cloud database can be used to provide relative comparisons to other users on the platform. In another variation, data can also be leveraged back into creating better training plans (i.e. some training plans can be successful for certain user groups, and not successful for others). Benchmarks can be created across the user group to provide a more relevant comparison as users progress throughout their training program. Synchronization of data can additionally enable data sharing. For example, coaches and personal trainers can access a web interface to monitor the performance of clients, which can then be used by the coaches or personal trainers to influence the training plans.

The systems and methods of the embodiments can be embodied and/or implemented at least in part as a machine configured to receive a computer-readable medium storing computer-readable instructions. The instructions can be executed by computer-executable components integrated with the application, applet, host, server, network, website, communication service, communication interface, hardware/firmware/software elements of a user computer or mobile device, wristband, smartphone, or any suitable combination thereof. Other systems and methods of the embodiment can be embodied and/or implemented at least in part as a machine configured to receive a computer-readable medium storing computer-readable instructions. The instructions can be executed by computer-executable components integrated with apparatuses and networks of the type described above. The computer-readable medium can be stored on any suitable computer readable media such as RAMs, ROMs, flash memory, EEPROMs, optical devices (CD or DVD), hard drives, floppy drives, or any suitable device. The computer-executable component can be a processor but any suitable dedicated hardware device can (alternatively or additionally) execute the instructions.

As a person skilled in the art will recognize from the previous detailed description and from the figures and claims, modifications and changes can be made to the embodiments of the invention without departing from the scope of this invention as defined in the following claims. 

We claim:
 1. A method comprising: collecting kinematic data at an activity monitoring system coupled to a user; selecting a training activity of the user, the training activity selected from a plurality of training activity options; and processing the kinematic data in a processing mode of the selected training activity and thereby generating a set of training metrics that comprises at least one training metric.
 2. The method of claim 1, wherein the plurality of training activity options comprises at least pushups, lunges, squats, and planks.
 3. The method of claim 2, wherein the plurality of training activity options further comprises at least bicep curls, deadlifting, jumping jacks, sit ups, and pull ups.
 4. The method of claim 1, wherein the plurality of training activity options comprises at least pushups.
 5. The method of claim 4, wherein processing the kinematic data further comprises processing in a pushup processing mode that comprises of segmenting pushup repetitions from the kinematic data and extracting push training metrics from pushup repetitions.
 6. The method of claim 5, wherein processing in a pushup processing mode further comprises detecting a style of pushups from a set of pushup styles.
 7. The method of claim 1, wherein the plurality of training activity options comprises at least lunges; and wherein processing the kinematic data further comprises processing in a lunge processing mode that comprises classifying lunge foot, counting lunges by foot, and classifying at least one aspect of lunge form.
 8. The method of claim 1, wherein the plurality of training activity options comprises at least squats; and wherein processing the kinematic data further comprises processing in a squat processing mode that comprises counting squats and classifying at least one aspect of squat form.
 9. The method of claim 1, wherein the plurality of training activity options comprises at least planks; and wherein processing the kinematic data further comprises processing in a plank processing mode that comprises generating the training metrics of plank duration, pelvic tilt, core stability, and plank style classification.
 10. The method of claim 1, wherein the plurality of training activity options comprises at least one asymmetric training activity; and wherein processing the kinematic data comprises, in an asymmetric processing mode, detecting training activity side through the kinematic data and generating training metrics for right and left sides of a training activity.
 11. The method of claim 10, further comprising generating a comparison of training metrics of the left and right sides of a training activity.
 12. The method of claim 1, wherein selecting a training activity of the user, further comprises processing the kinematic data in a classification mode and thereby identifying a current training activity.
 13. The method of claim 1, further comprising monitoring the training metrics compared to at least one training condition and generating feedback.
 14. The method of claim 1, further comprising generating an exercise plan from the training metrics.
 15. The method of claim 1, wherein processing of the kinematic data and generating at least one training metric comprises classifying form of performing a training activity through the kinematic data.
 16. The method of claim 1, wherein processing of the kinematic data and generating at least one training metric comprises detecting a fatigue state in kinematic data during performance of a training activity.
 17. The method of claim 1, further comprising collecting an electromyography signal from the user, predicting muscle usage from the electromyography signal during a training activity, and generating a form classification training metric classifying on muscle usage and at least a subset of the training metrics of the training activity.
 18. A system comprising: an inertial measurement unit configured to collect kinematic data when coupled to a user; a processing system configured to: select a training activity from a plurality of training activity options, and process the kinematic data in a processing mode of the selected training activity and thereby generate a set of training metrics.
 19. The system of claim 18, wherein the plurality of training activity options comprises at least pushups, lunges, squats, and planks.
 20. The system of claim 18, further comprising at least one feedback interface activated in response to the training metrics. 